1. Technical Field
Exemplary embodiments of the present invention relate to the technique of data correction and, more particularly, to a decoder capable of decoding encoded data by using adding and shifting operations in a Recursive Near Polynomial (RNP) method and a data processing apparatus including the decoder. Exemplary embodiments of the present invention also relate to digital signal processing and, more particularly, to a method for compressing and restoring lookup table values to be subsequently stored in a lookup table using a recursive near polynomial (RNP) equation.
2. Discussion of Related Art
In an image processing apparatus, such as an image sensor, it is required to transmit more information from a host to a data processing apparatus performing lens correction in order to perform a more precise lens correction.
Lens correction typically means unifying light intensity of an image center and the light intensity of an edge to cope with a physical phenomenon caused by the lens and a pixel, that is, a phenomenon that light intensity decreases as it goes out from an image center that is, a center of the lens, to an edge of the image.
Information transmission time is a very sensitive subject in a usable system. The more information that is transmitted, the longer the transmission time that is required. Therefore, to reduce information transmission time, data should be compressed or encoded and then transmitted.
Compressed information is decoded in a decoder of a data processing apparatus performing lens correction. A conventional decoder has a complex hardware structure, because it performs many multiplying operations. Therefore, it is difficult to embody a conventional decoder in a small hardware size.
A lookup table (LUT) is widely used in performing digital signal processing algorithms. The LUT is used to effectively represent a functional dependence between the sets of input and output parameters in the implementation of the software and/or hardware of the algorithms. The functional dependence between one input parameter and one output parameter can be represented by a one-dimensional LUT. The functional dependence between two input parameters and one output parameter can be represented by a two-dimensional LUT.
Interpolation can be used to obtain a continuous functional dependence from a lookup table representation. The LUT values can be randomly or sequentially accessed by the digital signal processing algorithms. When the LUT values are sequentially accessed, an input parameter value may continuously vary within a range of effective parameter values. Although the LUT can be used to improve performance of the digital signal processing algorithms, aside from the performance, there may be other restrictions on the efficiency of the LUT. One of the restrictions is the memory capacity, or the memory size, that is occupied by the LUT.
The memory footprint of a LUT can be reduced by the introduction of data compression and decompression units. To perform the method, however, additional, complicated hardware logic and/or software codes are needed.
Polynomial regression can be used to reduce the memory capacity of the LUT. In this case, coefficients of a polynomial regression equation appropriate for a LUT value can be stored in a memory so that the memory capacity of the LUT can be reduced. It can be problematic, however, that a large number of multiplications are needed to restore the LUT values from the coefficients of the polynomial regression equation. This problem can degrade performance in the execution of the software to restore the LUT values from the coefficients of the polynomial regression equation and can increase costs for the implementation of hardware.